﻿<?php
require_once 'application/controllers/admin.php';

##############################################
#	Контролер за администрација на профили	 #
##############################################

class adminProfiles extends Admin{

	public function __construct(){
		parent::__construct();
	}

	public function index(){
		$this->profiles();
	}

	//Функција за приказ на сите профили
	public function allProfiles(){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profiles_model');
		$this->load->helper('form');
		$data['title'] = 'ФИНКИ - Администратор - Профили';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/allProfiles';
		$data['navbar'] = 'admin/main';
		$data['profiles'] = $this->profiles_model->joinSort('profilescontents', 'profiles.idPrfPk = profilescontents.idPrfFk',array('profilescontents.language'=>'mk'),'idPrfPk','asc');

		$this->load->view('masterPage', $data);
	}

	//Функција за приказ на одреден профил
	public function profiles($id){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profiles_model');
		$this->load->helper('form');

		$profile = $this->profiles_model->joinId('profilescontents', 'profiles.idPrfPk = profilescontents.idPrfFk',array('profilescontents.language'=>'mk'),'idPrfPk','asc');
		$data['title'] = 'ФИНКИ - Администратор - '.$profile->name;
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/profiles';
		$data['navbar'] = 'admin/main';
		$data['profile'] = $profile;

		$this->load->view('masterPage', $data);
	}
	
	//Функција за внесување на информации за профил
	public function addProfile(){
		$user = $this->userCheck('studies','admin/main');

		$this->load->helper('form');
		$data['title'] = 'ФИНКИ - Администратор - Додади профил';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/addProfile';
		$data['navbar'] = 'admin/main';

		$this->load->view('masterPage', $data);
	}

	//Функција за промена на информации за профил
	public function editProfile($id, $lang){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profiles_model');
		$this->load->helper('form');

		$profile = $this->profiles_model->joinId('profilescontents', 'profiles.idPrfPk = profilescontents.idPrfFk',array('profilescontents.language'=>$lang),'idPrfPk','asc');

		$data['title'] = $profile->name?:'Промени профил';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/editProfile';
		$data['navbar'] = 'admin/main';
		$data['theProfile'] = $profile;

		$this->load->view('masterPage', $data);
	}

	//Функција за внесување на информации за профил во база
	public function processProfiles(){
		$user = $this->userCheck('studies','admin/main');

		if(!$this->input->post('submit'))
			redirect('admin/main','refresh');

		$this->load->library('form_validation');
		$this->load->model('profiles_model');
		$this->load->model('profilescontents_model');

		$this->form_validation->set_rules('name', 'име', 'required|xss_clean');
		$this->form_validation->set_rules('language', 'јазик', 'xss_clean');
		$this->form_validation->set_rules('summary', 'резиме', 'required|xss_clean');

		if ($this->form_validation->run() == FALSE)
		{
			redirect('error','refresh');
		}

		$name = $this->input->post('name', TRUE);
		$language = $this->input->post('language', TRUE);
		$summary = $this->input->post('summary', TRUE);

		$dataProfile = array('pdfGuide'=>'VodicZaStudiranjeNaFINKI.pdf');

		$id = $this->profiles_model->insert($dataProfile);
		
		$dataContentsMK = array( 'name'=>$name,
				'summary'=>$summary,
				'language'=>'mk',
				'idPrfFk'=>$id
		);
		$dataContentsEN = array( 'name'=>"",
				'summary'=>"",
				'language'=>'en',
				'idPrfFk'=>$id
		);
		$this->profilescontents_model->insert($dataContentsMK);
		$this->profilescontents_model->insert($dataContentsEN);

		redirect('adminProfiles/profiles/'.$id,'refresh');
	}

	//Функција за промена на информации за профил во база
	public function updateProfiles($id){
		$user = $this->userCheck('studies','admin/main');

		if(!$this->input->post('submit'))
			redirect('admin/main','refresh');

		$this->load->library('form_validation');
		$this->load->model('profiles_model');
		$this->load->model('profilescontents_model');

		$this->form_validation->set_rules('name', 'име', 'required|xss_clean');
		$this->form_validation->set_rules('language', 'јазик', 'xss_clean');
		$this->form_validation->set_rules('summary', 'резиме', 'required|xss_clean');

		if ($this->form_validation->run() == FALSE)
		{
			redirect('error','refresh');
		}

		$name = $this->input->post('name', TRUE);
		$language = $this->input->post('language', TRUE);
		$summary = $this->input->post('summary', TRUE);

		$dataContents = array( 'name'=>$name,
				'summary'=>$summary,
				'language'=>$language,
		);
		$this->profilescontents_model->update(array('idPrfFk'=>$id,'language'=>$language),$dataContents);

		redirect('adminProfiles/profiles/'.$id,'refresh');
	}

	//Функција за бришење на профили
	public function deleteProfiles(){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profiles_model');
		$this->load->model('profilescontents_model');

		$courses = $this->profiles_model->getAll();

		foreach($courses as $course)
			if($this->input->post($course->idPrfPk)!=null){
			$this->profiles_model->delete(array('idPrfPk'=>$course->idPrfPk));
			$this->profilescontents_model->delete(array('idPrfPk'=>$course->idPrfPk));
		}

		redirect('adminProfiles/allProfiles','refresh');
	}

	//Фунција за приказ на предмети за одреден профил
	public function courses($id){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profilescourses_model');
		$this->load->model('courses_model');
		$this->load->helper('form');

		$data['title'] = 'ФИНКИ - Администратор - Профили';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/courses';
		$data['navbar'] = 'admin/main';
		$data['courses'] = $this->profilescourses_model->joinSort('courses', 'profilescourses.idCrsFk = courses.idCrsPk',array('profilescourses.idPrfFk'=>$id),'semester','asc');
		$data['allCourses'] = $this->courses_model->getAll();
		$data['id'] = $id;

		$this->load->view('masterPage', $data);
	}

	//Функција за додавање на предмети за одреден профил
	public function addCourse($id){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profilescourses_model');

		if(!$this->input->post('submit'))
			redirect('admin/main','refresh');

		$this->load->library('form_validation');

		$this->form_validation->set_rules('semester', 'семестар', 'xss_clean');
		$this->form_validation->set_rules('course', 'предмет', 'xss_clean');

		if ($this->form_validation->run() == FALSE)
		{
			redirect('error','refresh');
		}

		$idCourse = $this->input->post('course', TRUE);
		$semester = $this->input->post('semester', TRUE);


		$data = array(
				'semester' => $semester,
				'idPrfFk' => $id,
				'idCrsFk' => $idCourse
		);

		$this->profilescourses_model->insert($data);

		redirect('adminProfiles/courses/'.$id);

	}

	//Функција за бришење на предмети за одреден профил
	public function deleteCourses($id){
		$user = $this->userCheck('studies','admin/main');

		$this->load->model('profilescourses_model');

		$courses = $this->profilescourses_model->getWhere(array('idPrfFk'=>$id));

		foreach($courses as $course)
			if($this->input->post($course->idPrcPk)!=null){
			$this->profilescourses_model->delete(array('idPrcPk'=>$course->idPrcPk));
		}

		redirect('adminProfiles/courses/'.$id,'refresh');
	}
	
	//Функција за приказ на насоки кои можат да користат одреден профил 
	public function studies($id){
		$user = $this->userCheck('studies','admin/main');
	
		$this->load->model('studiesprofiles_model');
		$this->load->model('studiescontents_model');
		$this->load->helper('form');
	
		$data['title'] = 'ФИНКИ - Администратор - Профили';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminProfiles/studies';
		$data['navbar'] = 'admin/main';
		$data['studies'] = $this->studiesprofiles_model->joinSort('studiescontents', 'studiesprofiles.idStuFk = studiescontents.idStuFk',array('studiesprofiles.idPrfFk'=>$id, 'studiescontents.language'=>'mk'),'idSprPk','asc');
		$data['allStudies'] = $this->studiescontents_model->getWhere(array('language'=>'mk'));
		$data['id'] = $id;
	
		$this->load->view('masterPage', $data);
	}
	
	//Функција за додавање на насока која може да користи одреден профил 
	public function addStudy($id){
		$user = $this->userCheck('studies','admin/main');
	
		$this->load->model('studiesprofiles_model');
	
		if(!$this->input->post('submit'))
			redirect('admin/main','refresh');
	
		$this->load->library('form_validation');
	
		$this->form_validation->set_rules('study', 'насока', 'xss_clean');
	
		if ($this->form_validation->run() == FALSE)
		{
			redirect('error','refresh');
		}
	
		$idStudy = $this->input->post('study', TRUE);
	
	
		$data = array(
				'idPrfFk' => $id,
				'idStuFk' => $idStudy
		);
	
		$this->studiesprofiles_model->insert($data);
	
		redirect('adminProfiles/studies/'.$id);
	
	}
	
	//Функција за промена на насоките кои може да користат одреден профил
	public function deleteStudies($id){
		$user = $this->userCheck('studies','admin/main');
	
		$this->load->model('studiesprofiles_model');
	
		$studies = $this->studiesprofiles_model->getWhere(array('idPrfFk'=>$id));
	
		foreach($studies as $study)
			if($this->input->post($study->idSprPk)!=null){
			$this->studiesprofiles_model->delete(array('idSprPk'=>$study->idSprPk));
		}
	
		redirect('adminProfiles/studies/'.$id,'refresh');
	}	
}
